﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using BLL.Validation;
using Utilities;

namespace BLL
{
    public class PhongHocManager:IValidator<PhongHoc>
    {
        public static ActionResultAsList<PhongHoc> LayDanhSachPhongHoc()
        {
            var aResult = new ActionResultAsList<PhongHoc>();
            try
            {
                aResult.Result = PhongHocProvider.LayDanhSachPhongHoc();
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }
        public static ActionResult<bool> XoaPhongHoc(int maPH)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = PhongHocProvider.XoaPhongHoc(maPH);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Xóa thông tin phòng học không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }
        public static ActionResult<bool> CapNhatPhongHoc(PhongHoc ph)
        {
            var aResult = new ActionResult<bool>();
            try
            {
                aResult.Result = PhongHocProvider.CapNhatPhongHoc(ph);
                if (!aResult.Result)
                {
                    aResult.Exceptions.Add(new Exception("Cập nhật phòng học không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }
        public static ActionResult<int> ThemPhongHoc(PhongHoc ph)
        {
            var aResult = new ActionResult<int>();
            try
            {
                aResult.Result = PhongHocProvider.ThemPhongHoc(ph);
                if (aResult.Result <= 0)
                {
                    aResult.Exceptions.Add(new Exception("Thêm mới phòng học không thành công"));
                }
            }
            catch (Exception ex)
            {
                aResult.Exceptions.Add(ex);
            }
            return aResult;
        }


        public ValidationResult Validate(PhongHoc obj)
        {
            var vResult = new ValidationResult();

            if (string.IsNullOrEmpty(obj.TenPhong.Trim()))
            {
                vResult.Message.Add("Tên phòng học phải khác chuỗi rỗng");
            }
            if (string.IsNullOrEmpty(obj.ChucNang.Trim()))
            {
                vResult.Message.Add("Chức năng phòng học phải khác chuỗi rỗng");
            }
            if (string.IsNullOrEmpty(obj.TrangThai.Trim()))
            {
                vResult.Message.Add("Trạng thái phòng học phải khác chuỗi rỗng");
            }
         
            return vResult;
        }
    }
}
